﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace Teenus {
    
    [ServiceContract]
    public interface IService {

        [OperationContract]
        Boolean deleteUudis(int uudisId);

        [OperationContract]
        Boolean insertEntityUudis(EntityUudis uusUudis);

        [OperationContract]
        Boolean editEntityUudis(EntityUudis uusUudis);

        [OperationContract]
        Boolean isSuperAdmin(string id);
        
        [OperationContract]
        string getKohvikuKirjeldus(string id);

        [OperationContract]
        int newKohvikuKirjeldus(string kirjeldus, string id);

        [OperationContract]
        List<EntityKohvik> getEntityKohvikList();

        [OperationContract]
        EntityKohvik getEntityKohvikById(int id);

        [OperationContract]
        List<EntityKaup> getAllItems();

        [OperationContract]
        List<EntityKaup> getAllItemNames();

        [OperationContract]
        List<EntityKaup> getItemData(int kohvikID, string date);

        [OperationContract]
        EntityKaup getItemByOlemineId(int olemineID);

        [OperationContract]
        Boolean insertItem(int kohvikID, String kategooria, String nimetus, String kuupaev, List<EntityPorts> portsud, List<EntitySoodustus> soodukad);

        [OperationContract]
        Boolean editItem(int olemineID, String kategooria, String nimetus, String kuupaev, List<EntityPorts> portsud, List<EntitySoodustus> soodukad);

        [OperationContract]
        Boolean deleteItem(int itemID, String kuupaev);

        [OperationContract]
        Boolean deleteItemByOlemineId(int olemineID);

        [OperationContract]
        Boolean toggleAvailability(int ports_ID);

        [OperationContract]
        List<EntityUudis> getEntityUudisList();

        [OperationContract]
        List<EntityUudis> getEntityUudisListByAmount(int limit);

        [OperationContract]
        EntityUudis getEntityUudisById(int id);

        [OperationContract]
        List<EntityLahtiolekuAjad> getEntityLahtiolekuAjadByKohvikId(int kohvikId);

        [OperationContract]
        List<EntityKommentaar> getEntityKommentaarList();

        [OperationContract]
        List<EntityKommentaar> getEntityKommentaarFor(KommentaarType kommentaarType, int id);

        [OperationContract]
        int getCommentCountFor(KommentaarType kommentaarType, int id);

        [OperationContract]
        bool addEntityKommentaarFor(KommentaarType kommentaarType, int rowIdToAddKommentaarFor, String sisu, String autor, DateTime postituseAeg);

        [OperationContract]
        List<EntityValuuta> getCurrency();

        [OperationContract]
        int login(String user, String pass);

        [OperationContract]
        int getCafIdByUserId(int id);

        [OperationContract]
        int getUserRoleId(int userID);

        [OperationContract]
        List<String> getKaupNimed(int kasutaja_ID, string prefixText);

        [OperationContract]
        List<String> getKatNimed(string prefixText);

        [OperationContract]
        string EncodePassword(string originalPassword);

        [OperationContract]
        int lisaUusKohvik(EntityKohvik k);

    }   //END interface
    
}
